//#include "cv.h"

//int const MAX_SZ_CTR = 100;

#ifndef __IPC_CTRL_HPP__
#define __IPC_CTRL_HPP__



#define UPDATE_TIME 1
#define UPDATE_TIME_OBSTACLE 1
#define QUEUE_LENGTH 5

#define MODULE_NAME "VC_IPC_module"

/* Define robot pose message */
typedef struct {
	float x,y,theta;
} POSE_DATA_TYPE;
#define POSE_DATA_FORM "{float, float, float}"
#define SEND_POSE_DATA_QUERY "SendPoseData"
#define POSE_MSG "PoseMessage" 

/* Define obstacle positions message */
typedef struct {
	int dim1;
	int dim2;
	int *vals;	
} OBSTACLE_DATA_TYPE;
#define OBSTACLE_DATA_FORM "{int, int, <int: 1, 2>}"
#define SEND_OBSTACLE_DATA_QUERY "SendObstacleData"
#define OBSTACLE_MSG "ObstacleMessage" 





  static void poseMsgHandler (MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData);


static  void obstacleMsgHandler (MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData);

 static void printErrMsg( const char *msg, IPC_RETURN_TYPE errMsg );



   void myGetRobotPose( double *out );


 static  void myGetObstacleCoord();

 static void myGetObstacleCoord(int* out, int m, int n);

   void myIPC_Init(char *centralhost);




void myShutdown();



#endif